Load balancing can be used to distribute a workload across multiple computing devices such that the same amount of work can be performed more efficiently. As one example, a load balancer can be a network device that distributes network traffic across a number of links or paths.
Techniques such as equal cost multi-path (ECMP) routing could be used to load balance. In one ECMP technique, flow related data in the packet headers is hashed in order to distribute incoming flows equally over egress ports. That is, the hash result dictates which egress port is selected. The hashing is expected to result in an equal distribution of the flows to egress ports.
A problem with some ECMP techniques is that there can be different sizes between the flows. Hash collisions could potentially cause significant imbalance if there are a few large flows. This means that at least for some short time frames there could be low utilization of some ports and high utilization of other egress ports. In other words, over a long enough time frame, the load may be balanced between the various egress ports. However, utilization can be imbalanced over short time frames.